#ifndef IP6COMP_HH
#define IP6COMP_HH

namespace natpt {

class Ip6Comp {

public:

  bool operator() (const in6_addr x, const in6_addr y)
  {
    if(x.s6_addr32[3] == y.s6_addr32[3]) {
      if(x.s6_addr32[2] == y.s6_addr32[2]) {
	if(x.s6_addr32[1] == y.s6_addr32[1]) {
	  if(x.s6_addr32[0] <= y.s6_addr32[0]) {
	    return true;
	  }
	  else {
	    return false;
	  }
	}
	else {
	  if(x.s6_addr32[1] < y.s6_addr32[1]) {
	    return true;
	  }
	  else {
	    return false;
	  }
	}
      }
      else {
	if(x.s6_addr32[2] < y.s6_addr32[2]) {
	  return true;
	}
	else {
	  return false;
	}
      }
    }
    else {
      if(x.s6_addr32[3] < y.s6_addr32[3]) {
	return true;
      }
      else {
	return false;
      }
    }
  }

};

}
#endif // IP6COMP_HH
